Una de las ventajas de la programación orientada a componentes es la independencia de sus elementos, lo que permite que se puedan probar los elementos por separado y validar su funcionamiento de una manera controlada.
El desarrollo de aplicaciones basada en componentes cumple con las siguientes características:
Proceso de desarrollo basado en el modelo industrial (mayor eficiencia).
Mejores estándares de calidad y accesibilidad.
Mayor robustez, homogeneidad y escalabilidad en el software.
El objetivo fundamental de la programación orientada a componentes es poder combinar de manera diferente componentes para obtener aplicaciones diferentes de una manera más rápida y sencilla.
La arquitectura software utilizada está vinculada con el framework de desarrollo seleccionado.
La arquitectura software detalla las estructuras y relaciones que existen entre ellas dentro de un software determinado, describiendo:
Manejo de estructuras complejas.
Reutilización.
Previsión de cambios en el software.
Análisis de correcciones y determinación de partes estáticas y dinámicas en el software.
Contextualización del software.
Existen diferentes tecnologías para el desarrollo de componentes, algunas de las estandarizadas son:
CORBA (Common Object Request Broker Architecture): Se centra en facilitar la utilización de componentes remotos utilizando un paradigma orientado a objetos.
DCOM (Distributed Component Model): Permite desarrollar componentes distribuidos facilitando también la comunicación entre ellos.
.NET: Se centra en buscar la transparencia para el desarrollador.
Enterprise JavaBeans: Utiliza un modelo Cliente-Servidor para ofrecer soluciones independientes de plataforma.
La ingeniería de Dominio en diseño de componentes es un proceso clave para el diseño de una arquitectura de componentes, cuyo objetivo es optimizar el proceso de desarrollo de software para un problema de dominio.
En este contexto, cada característica (feature) que define un sistema tiene un ID.
Tanto los usuario como los analistas y los desarrolladores se involucran en el desarrollo de cada ID.
Una composición es una combinación de componentes.
En la composición se indica cómo los componentes se relacionan y comunican entre ellos.
Para lograr la reutilización de componentes es necesario crear repositorios, a partir de los cuales se realiza el despliegue de componentes para crear composiciones.
Distribución de componentes: Cuando se desea utilizar un componente, este debe ser importado a un framework. Para ello es necesario que el componente describa su interfaz para poder cargar las operaciones disponibles.
Distribución de frameworks: Los frameworks pueden ser distribuidos dentro de otros frameworks.
Composición simple: Cuando se distribuye un framework, sus componentes pueden combinarse con otros. La interfaz de dichos componentes la debe proporcionar el framework.
Composición heterogénea. Al poder trabajar con diferentes frameworks, hablamos de composición de componentes a través de frameworks.
Extensión del framework. Existe la posibilidad de tratar al framework como un componente más y realizar composiciones entre frameworks.
Composición transitiva. Un componente puede ser el resultado de una composición previa. Puede realizar una combinación con un componente que ya ha sido compuesto.
En este aspecto han de resolverse cuestiones relativas a la visibilidad de componentes.
Ejemplo: